Billing systems may suffer from situations in which invoices are sent out before processing of all items that should go on that invoice has completed. In general, this is a scalability issue. Billing systems that normally process all invoice items on time may become overwhelmed under busy conditions (e.g., high customer activity, or many new customers joining or customers changing their billing plans). The billing cycle (time period for adding new invoice items to invoices) may remain unchanged even though there are many more items to process, or timing issues (e.g., race conditions) may cause items to be processed under the wrong plans.
In addition to billing related limitations, the real-time presentation of detailed usage information during a particular transaction period traditionally also suffers from bottlenecks related to database and system performance.
An example situation in which this problem may occur is in telecommunication billing systems. It may be necessary to process all call detail records (potential invoice items for customer activity) within a fixed time period and with real time response to customer service level and/or plan changes.